package home;

import java.util.Map;
import java.util.Map.Entry;

import Excepciones.UsuarioExisteException;
import Excepciones.UsuarioNoExisteException;
import modelo.Usuario;

public class HomeMemoria {
	Map<Usuario, Long> listaUsuariosCodigos;

	public HomeMemoria(Map<Usuario, Long> usuarios) {
		this.setListaUsuariosCodigos(usuarios);
	}

	public HomeMemoria() {}

	public void anadirUsuario(Usuario u, Long codigo) {
		if(existeUsuario(u.getNombre_usuario())){
			throw new UsuarioExisteException();
		}else{
			this.getListaUsuariosCodigos().put(u, codigo);
		}
	}
	
	public Entry<Usuario, Long> traerUsuarioYCodigo(String nombre_usuario) {
		for(Entry<Usuario, Long> e : this.getListaUsuariosCodigos().entrySet()){
			if(e.getKey().getNombre_usuario().equals(nombre_usuario)){
				return e;
			}
		}
		throw new UsuarioNoExisteException();
	}
	
	public boolean existeUsuario(String nombre_usuario) {
		for(Entry<Usuario, Long> e : this.getListaUsuariosCodigos().entrySet()){
			if(e.getKey().getNombre_usuario().equals(nombre_usuario)){
				return true;
			}
		}
		return false;
	}
	
	//////////////////////////ACCESORS/////////////////////////////////////
	
	public Map<Usuario, Long> getListaUsuariosCodigos() {
		return listaUsuariosCodigos;
	}

	public void setListaUsuariosCodigos(Map<Usuario, Long> listaUsuariosCodigos) {
		this.listaUsuariosCodigos = listaUsuariosCodigos;
	}
}